package cn.b.sky.mes.andon.service;

import java.util.List;

import cn.b.sky.mes.andon.model.MessageRule;
import cn.b.sky.mes.andon.model.condition.MessageRuleCondition;
import cn.b.sky.common.model.BatchJobReport;
import cn.b.sky.common.model.Page;

/**
 * 
 * <strong>Title : MessageRuleService<br></strong>
 * <strong>Package : cn.b.sky.mes.andon.service<br></strong>
 * <strong>Description : </strong>消息规则操作业务类接口<br> 
 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
 * <p>
 * @author JunLin.Yang<br>
 * @version <strong>v1.0.0</strong>
 */
public interface MessageRuleService{

  	
  	/**
  	 * 
  	 * <strong>Title : insertMessageRule<br></strong>
  	 * <strong>Description : </strong>新增消息规则数据<br> 
  	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
  	 * <p>
  	 * @param data 消息规则
  	 * @return
  	 * int 新增记录数
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
 		 */
  	public int insertMessageRule(MessageRule data);
  
  	/**
  	 * 
  	 * <strong>Title : updateMessageRule<br></strong>
  	 * <strong>Description : </strong>更新消息规则数据<br> 
  	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
  	 * <p>
  	 * @param data 消息规则
  	 * @return
  	 * int 更新的记录数
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public int updateMessageRule(MessageRule data);
  	
  	
  	/**
  	 * 
  	 * <strong>Title : deleteMessageRule<br></strong>
  	 * <strong>Description : </strong>删除消息规则数据<br> 
  	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
  	 * <p>
  	 * @param data 消息规则
  	 * @return
  	 * BatchJobReport 执行结果信息对象
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public BatchJobReport deleteMessageRule(MessageRule data);
  	
  	
  	/**
  	 * 
  	 * <strong>Title : getMessageRulesCount<br></strong>
  	 * <strong>Description : </strong>查询所有的消息规则数据记录数<br> 
  	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
  	 * <p>
  	 * @return
  	 * long 数据记录数
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public long getMessageRulesCount();
  	
  	/**
  	 * 
  	 * <strong>Title : selectMessageRules<br></strong>
  	 * <strong>Description : </strong>查询所有的消息规则数据<br> 
  	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
  	 * <p>
  	 * @return
  	 * List<MessageRule> 所有的消息规则数据
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public List<MessageRule> selectMessageRules();
  	
  	/**
  	 * 
  	 * <strong>Title : deleteMessageRuleByPrimaryKey<br></strong>
  	 * <strong>Description : </strong>根据主键信息删除消息规则数据<br> 
  	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
  	 * <p>
	 * @param siteCode 工厂编号
	 * @param ruleCode 消息规则编号
	 * @return
  	 * BatchJobReport 执行结果信息对象
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public BatchJobReport deleteMessageRuleByPrimaryKey(String siteCode,String ruleCode);
  	
  /**
	 * 
	 * <strong>Title : getMessageRuleByPrimaryKey<br></strong>
	 * <strong>Description : </strong>根据主键查询消息规则对象<br> 
	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
	 * <p>
	 * @param siteCode 工厂编号
	 * @param ruleCode 消息规则编号
	 * @return
	 * MessageRule 消息规则对象
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public MessageRule getMessageRuleByPrimaryKey(String siteCode,String ruleCode);
  
  /**
	 * 
	 * <strong>Title : existMessageRuleByPrimaryKey<br></strong>
	 * <strong>Description : </strong>根据主键查询消息规则对象是否存在<br> 
	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
	 * <p>
	 * @param siteCode 工厂编号
	 * @param ruleCode 消息规则编号
	 * @return
	 * boolean 数据是否存在
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public boolean existMessageRuleByPrimaryKey(String siteCode,String ruleCode);
  
  	/**
  	 * 
  	 * <strong>Title : existsMessageRuleByCondition<br></strong>
  	 * <strong>Description : </strong>根据查询对象查询消息规则数据是否存在<br> 
  	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
  	 * <p>
  	 * @param condition 消息规则查询对象
  	 * boolean 数据是否存在
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public boolean existsMessageRuleByCondition(MessageRuleCondition condition);
	
  /**
	 * 
	 * <strong>Title : getMessageRuleByCondition<br></strong>
	 * <strong>Description : </strong>根据查询条件查询对应消息规则对象<br> 
	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
	 * <p>
	 * @param condition 消息规则查询条件
	 * @return
	 * MessageRule 消息规则对象
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public MessageRule getMessageRuleByCondition(MessageRuleCondition condition);
	
	/**
	 * 
	 * <strong>Title : selectMessageRulesByCondition<br></strong>
	 * <strong>Description : </strong>根据查询条件查询消息规则集合<br> 
	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
	 * <p>
	 * @param condition 消息规则查询条件
	 * @return 
	 * List<MessageRule> 消息规则集合
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public List<MessageRule> selectMessageRulesByCondition(MessageRuleCondition condition);
	
	/**
	 * 
	 * <strong>Title : selectMessageRulePageDataByCondition<br></strong>
	 * <strong>Description : </strong>根据查询条件查询相应分页的消息规则集合<br> 
	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
	 * <p>
	 * @param condition 消息规则查询条件
	 * @return 
	 * List<MessageRule> 消息规则集合
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public List<MessageRule> selectMessageRulePageDataByCondition(MessageRuleCondition condition);
	
	/**
	 * 
	 * <strong>Title : selectMessageRulePageByCondition<br></strong>
	 * <strong>Description : </strong>根据查询条件查询相应消息规则分页信息<br> 
	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
	 * <p>
	 * @param condition 消息规则查询条件
	 * @return 
	 * List<MessageRule> 消息规则分页信息
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
	public Page selectMessageRulePageByCondition(MessageRuleCondition condition);

	/**
	 * 
	 * <strong>Title : getMessageRulesCountByCondition<br></strong>
	 * <strong>Description : </strong>根据查询条件查询相应的消息规则记录数<br> 
	 * <strong>Create on : 2016-10-17 下午02:49:27<br></strong>
	 * <p>
	 * @param condition 消息规则查询条件
	 * @return
	 * long 数据记录数
	 * @throws 
	 * @author JunLin.Yang<br>
	 * @version <strong>v1.0.0</strong><br>
	 * <br>
	 * <strong>修改历史:</strong><br>
	 * 修改人 | 修改日期 | 修改描述<br>
	 * -------------------------------------------<br>
	 * <br>
	 * <br>
	 */
  	public long getMessageRulesCountByCondition(MessageRuleCondition condition);
  	
  
  	/**
  	 * 
  	 * <strong>Title : insertMessageRulesWithAssociatedData<br></strong>
  	 * <strong>Description : </strong>保存消息规则及其相关数据信息<br> 
  	 * <strong>Create on : 2016年10月19日 上午10:43:21<br></strong>
  	 * <p>
  	 * @param messageRule 消息规则
  	 * void
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public void insertMessageRulesWithAssociatedData(MessageRule messageRule);
  	
  	/**
  	 * 
  	 * <strong>Title : updateMessageRulesWithAssociatedData<br></strong>
  	 * <strong>Description : </strong>更新消息规则及其相关数据信息<br> 
  	 * <strong>Create on : 2016年10月19日 上午10:43:56<br></strong>
  	 * <p>
  	 * @param messageRule 消息规则
  	 * void
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public void updateMessageRulesWithAssociatedData(MessageRule messageRule);
  	
  	/**
  	 * 
  	 * <strong>Title : deleteMessageRulesWithAssociatedData<br></strong>
  	 * <strong>Description : </strong>根据工厂、规则编码删除消息规则及其关联信息<br> 
  	 * <strong>Create on : 2016年10月19日 上午10:56:35<br></strong>
  	 * <p>
  	 * @param siteCode 工厂编码
  	 * @param ruleCode 规则编码
  	 * @return
  	 * BatchJobReport
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public BatchJobReport deleteMessageRulesWithAssociatedData(String siteCode,String ruleCode);
  	
  	/**
  	 * 
  	 * <strong>Title : getMessageRulesWithAssociatedData<br></strong>
  	 * <strong>Description : </strong>根据主键获取相关的消息规则及其相关数据信息<br> 
  	 * <strong>Create on : 2016年10月19日 下午4:12:40<br></strong>
  	 * <p>
  	 * @param siteCode 工厂编码
  	 * @param ruleCode 规则编码
  	 * @return
  	 * MessageRule
  	 * @throws 
  	 * @author JunLin.Yang<br>
  	 * @version <strong>v1.0.0</strong><br>
  	 * <br>
  	 * <strong>修改历史:</strong><br>
  	 * 修改人 | 修改日期 | 修改描述<br>
  	 * -------------------------------------------<br>
  	 * <br>
  	 * <br>
  	 */
  	public MessageRule getMessageRulesWithAssociatedData(String siteCode,String ruleCode);
}
